Skip to content

Обновить зависимости prod backend до Django 5.2 LTS - #853

Open
TThanos3000 wants to merge 2 commits into
masterfrom
codex/prod-supported-dependencies
Open

TThanos3000 wants to merge 2 commits into
masterfrom
codex/prod-supported-dependencies

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Prod backend переведен с Django 4.2.11 на Django 5.2.18 LTS и совместимые зафиксированные зависимости Python 3.11. PR подготовлен отдельно от текущего master: dev-функции, новые режимы программ и переключение NEXTGEN_SURFACE_ENABLED не переносятся.

Сохранены файловое хранилище и сжатая статика WhiteNoise через STORAGES, проверка старых bcrypt-паролей и связи файлов достижений. Миграция users.0066 адаптирована к графу master и дает no-op SQL. Docker включает native PDF-библиотеки; Poetry 2.5.1 согласован с CI и release.

Обновленная django-rest-passwordreset изменила get_throttles и отключала наш лимит запросов сброса пароля. Это обнаружил первый полный CI. Подкласс явно сохраняет прежний именованный POST-лимит; добавлена проверка неизвестного email без утечки наличия аккаунта.

Проверки

Проверяемый коммит: 9827760.

  • PostgreSQL 15 CI: 1713 тестов — OK, 3 пропуска; отдельно 86 тестов блокировок/ограничений и 16 тестов карантина prod API (2 пропуска) — OK.
  • В том же CI собран production Dockerfile без публикации образа; внутри образа прошли 6 тестов паролей, статики, WebP и настоящего PDF-резюме, включая почтовое вложение с локальной доставкой.
  • Общий CI / SQLite: 1713 тестов — OK, 10 пропусков; отдельно 16 тестов карантина prod API (2 пропуска) — OK; lint прошел.
  • Локально 12 целевых тестов ограничений запросов, старых паролей, WebP и настоящего PDF — OK.
  • На отдельной синтетической PostgreSQL 16 старый master / Django 4.2.11 создал пользователя, программу, поданный проект, анкету, достижение с файлом и JWT. После новых миграций хеши исходных защищенных строк совпали, старые access/refresh приняты и refresh обновлен; старый Django также читает обновленную базу.
  • Старый ключ сброса пароля принят обновленным validate/confirm API и удален после использования; повторный confirm отклонен. Новый хеш пароля искусственного аккаунта проверен старым Django 4.2.11.
  • pip-audit: все 141 lock-запись, 0 известных уязвимостей и 0 пропущенных на 03.11.2026.

Границы подготовки

PR не сливался. Release workflow не запускался, prod/dev не выкатывались, рабочая база не мигрировалась, реальные письма не отправлялись.

Проверка работающей платформы через GitHub Actions выполнена без выкладки и миграций. Подготовка резервной копии пока не завершена; подробный операционный отчет сохранен локально и не публикуется в репозитории. Свежая защищенная резервная копия и репетиция на ее изолированной копии остаются обязательными перед отдельно разрешенной выкладкой. Текущий release workflow автоматический backup не делает. Зеленые проверки кода не обозначают готовность работающего сервера к выпуску.

Порядок подготовки и оставшиеся условия: docs/prod-dependencies-20261103.md.

@TThanos3000
TThanos3000 marked this pull request as ready for review November 2, 2026 23:35

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant